{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "19e0870e-353e-447a-b429-334625bc1d72",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: faiss-cpu in /root/miniconda3/envs/langchain/lib/python3.10/site-packages (1.7.4)\n",
      "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "!pip install faiss-cpu"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "74edc7c2-2f05-40d3-98c9-c1c4d13bf819",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 需要 CUDA 7.5+ 版本支持的 GPU\n",
    "#!pip install faiss-gpu "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cfd2fec5-84f0-429d-903a-08933bf19cfa",
   "metadata": {},
   "source": [
    "# Faiss 向量数据库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "03b26ecf-987a-4c53-b7fa-cc566363276d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_openai import OpenAIEmbeddings\n",
    "from langchain.text_splitter import CharacterTextSplitter\n",
    "from langchain.vectorstores import FAISS\n",
    "from langchain.document_loaders import TextLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "cb5d79ae-6fe5-4fff-bfab-30762c1f1188",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实例化文档加载器\n",
    "loader = TextLoader(\"real_estate_sales_data.txt\", encoding=\"utf-8\")\n",
    "# 加载文档\n",
    "try:\n",
    "    documents = loader.load()\n",
    "except RuntimeError as e:\n",
    "    print(f\"加载文件时出错: {e}\")\n",
    "    documents = []\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "9b404e22-a148-4b63-a69c-54b1e76db5d3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实例化文本分割器\n",
    "text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)\n",
    "# 分割文本\n",
    "docs = text_splitter.split_documents(documents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "34897ff3-8f9c-42d6-841f-e06c0d2f521c",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Document(metadata={'source': 'real_estate_sales_data.txt'}, page_content='1.  \\n[客户问题] 这个小区交通便利吗？\\n[销售回答] 当然了，这个小区距离地铁站只有几分钟的步行距离，而且附近有多条公交线路，非常方便。\\n\\n2.  \\n[客户问题] 我担心楼下太吵。\\n[销售回答] 这个小区特别注重居住体验，我们有良好的隔音设计，并且小区内部规划了绿化区域，可以有效降低噪音。\\n\\n3.  \\n[客户问题] 我看房价还在涨，这个投资回报怎么样？\\n[销售回答] 这个区域未来有大量的商业和基础设施建设，所以从长期来看，投资回报非常有保证。\\n\\n4.  \\n[客户问题] 有没有学校？\\n[销售回答] 附近有多所优质的学校，非常适合有孩子的家庭。\\n\\n5.  \\n[客户问题] 物业管理怎么样？\\n[销售回答] 我们的物业管理得到了业主一致好评，服务非常到位。\\n\\n6.  \\n[客户问题] 我想要南向的房子。\\n[销售回答] 很好，我们确实有一些朝南的单位，它们的采光特别好。\\n\\n7.  \\n[客户问题] 这个小区安全吗？\\n[销售回答] 当然，我们24小时安保巡逻，还有先进的监控系统。\\n\\n8.  \\n[客户问题] 预计什么时候交房？\\n[销售回答] 根据目前的进度，我们预计将在明年底交房。\\n\\n9.  \\n[客户问题] 我不想要一楼的房子。\\n[销售回答] 我理解您的顾虑，我们还有多个楼层的房源可以选择。\\n\\n10.  \\n[客户问题] 有优惠吗？\\n[销售回答] 当然，如果您现在下订，我们可以给您一些优惠。\\n\\n11.  \\n[客户问题] 你们是否提供按揭服务？\\n[销售回答] 是的，我们与多家银行合作，可以帮助您快速办理按揭。\\n\\n12.  \\n[客户问题] 税费怎么算？\\n[销售回答] 我们可以提供详细的税费咨询服务，确保您清楚所有费用。\\n\\n13.  \\n[客户问题] 附近有医院吗？\\n[销售回答] 是的，附近有多家大型医院，医疗资源非常丰富。\\n\\n14.  \\n[客户问题] 我担心小区会很拥挤。\\n[销售回答] 这个小区总体规划非常合理，保证了每个单元之间有足够的空间。\\n\\n15.  \\n[客户问题] 这个小区有游泳池和健身房吗？\\n[销售回答] 当然，我们提供全方位的生活设施，包括游泳池和健身房。\\n\\n16.  \\n[客户问题] 我需要两个停车位，怎么办？\\n[销售回答] 我们的小区有充足的停车位，并且可以额外购买，确保您的停车需求得到满足。'),\n",
       " Document(metadata={'source': 'real_estate_sales_data.txt'}, page_content='17.  \\n[客户问题] 小区里有公园吗？\\n[销售回答] 是的，我们有专门设计的绿化区和儿童游乐园，确保您和家人能享受到高质量的生活。\\n\\n18.  \\n[客户问题] 我看到附近有个建筑工地。\\n[销售回答] 那个工地预计很快就会完工，而且我们的窗户有很好的隔音效果。\\n\\n19.  \\n[客户问题] 房子是精装还是毛坯？\\n[销售回答] 我们提供多种选择，包括精装和毛坯，以满足不同客户的需求。\\n\\n20.  \\n[客户问题] 这里有商业区吗？\\n[销售回答] 是的，小区附近有大型购物中心和各种餐厅，非常方便。\\n\\n21.  \\n[客户问题] 我需要大阳台。\\n[销售回答] 我们有一些户型设计带有大阳台，您可以在那里种花、晒衣或者放一个小茶几，非常宜人。\\n\\n22.  \\n[客户问题] 我担心电梯不够用。\\n[销售回答] 每栋楼都配有多部高速电梯，基本上不用等待。\\n\\n23.  \\n[客户问题] 垃圾处理怎么样？\\n[销售回答] 我们有专门的垃圾分类和回收系统，非常环保。\\n\\n24.  \\n[客户问题] 我担心交房延期。\\n[销售回答] 我们是知名的房地产开发商，一直严格按照计划执行，您完全可以放心。\\n\\n25.  \\n[客户问题] 我看这里有很多空置房。\\n[销售回答] 这些房源都是新推出的，我们预计在近期内会有更多的家庭搬入。\\n\\n26.  \\n[客户问题] 楼下有便利店吗？\\n[销售回答] 当然，小区内就有便利店，满足您日常生活的基本需求。\\n\\n27.  \\n[客户问题] 我需要分期付款。\\n[销售回答] 我们有多种付款方案，包括分期付款，以减轻您的经济压力。\\n\\n28.  \\n[客户问题] 我家有宠物，可以养吗？\\n[销售回答] 当然，我们是一个宠物友好的社区，但需要遵守一些基本规则。\\n\\n29.  \\n[客户问题] 我想看下水电气等设施。\\n[销售回答] 没问题，我们使用的都是品牌供应商，质量非常可靠。\\n\\n30.  \\n[客户问题] 你们会提供家具吗？\\n[销售回答] 我们的精装房会提供基础家具和家电，让您拎包入住。\\n\\n31.  \\n[客户问题] 都有哪些户型？\\n[销售回答] 我们有从一室到四室不等的多种户型，定能满足您不同的居住需求。\\n\\n32.  \\n[客户问题] 我听说这个区域交通常常堵塞。\\n[销售回答] 我们小区的位置实际上是绕开了主要交通瓶颈区，所以相对来说会流畅很多。'),\n",
       " Document(metadata={'source': 'real_estate_sales_data.txt'}, page_content='33.  \\n[客户问题] 我很关注环境保护，你们有做到吗？\\n[销售回答] 非常好的问题，我们的建筑采用环保材料，并且在小区规划中也有绿化区域和垃圾分类系统。\\n\\n34.  \\n[客户问题] 楼下会有商铺吗？\\n[销售回答] 是的，楼下将设有商铺，但都是服务性质的，不会影响您的居住体验。\\n\\n35.  \\n[客户问题] 社区活动丰富吗？\\n[销售回答] 我们有专门的社区活动中心，常常组织各种活动，非常丰富。\\n\\n36.  \\n[客户问题] 你们有提供家政服务吗？\\n[销售回答] 我们与多家家政服务公司有合作，可以方便您的日常生活。\\n\\n37.  \\n[客户问题] 我担心物业费会很高。\\n[销售回答] 我们的物业费是根据市场和服务水平来设定的，绝对物有所值。\\n\\n38.  \\n[客户问题] 附近有地铁站吗？\\n[销售回答] 附近就有地铁站，而且有多条公交线路经过，出行非常方便。\\n\\n39.  \\n[客户问题] 这里网络信号怎么样？\\n[销售回答] 我们有完善的网络基础设施，信号覆盖非常好。\\n\\n40.  \\n[客户问题] 我想先租赁，观察一下再买。\\n[销售回答] 这也是一个不错的选择，我们也提供租赁服务，您可以先体验一下。\\n\\n41.  \\n[客户问题] 有没有燃气管道？\\n[销售回答] 当然有，我们的所有单位都连接了燃气管道，非常安全和便利。\\n\\n42.  \\n[客户问题] 我是投资购房，租金回报如何？\\n[销售回答] 这个区域的租赁市场非常火爆，您投资购房后，租金回报率相当不错。\\n\\n43.  \\n[客户问题] 我喜欢安静，这里噪音大吗？\\n[销售回答] 我们特意进行了隔音设计，并且小区内部也有绿化带，整体非常安静。\\n\\n44.  \\n[客户问题] 我看这个小区还在建设中。\\n[销售回答] 是的，目前正在建设中，但已经接近尾声，很快就会完工。\\n\\n45.  \\n[客户问题] 有哪些休闲设施？\\n[销售回答] 我们有游泳池、健身房、图书馆以及儿童游乐场等多种休闲设施。\\n\\n46.  \\n[客户问题] 我担心暖气不足。\\n[销售回答] 我们使用的是中央供暖系统，温度可以保证。\\n\\n47.  \\n[客户问题] 需要交多少定金？\\n[销售回答] 定金金额取决于您选择的房型和付款方式，我们可以详细为您解释。\\n\\n48.  \\n[客户问题] 哪些银行可以贷款？\\n[销售回答] 我们与多家知名银行合作，贷款流程非常方便。'),\n",
       " Document(metadata={'source': 'real_estate_sales_data.txt'}, page_content='49.  \\n[客户问题] 我可以改变房间的布局吗？\\n[销售回答] 对于毛坯房，您有更多的自由度来改变房间布局。\\n\\n50.  \\n[客户问题] 你们怎么解决停车问题？\\n[销售回答] 我们有地下车库和多个停车位，确保每个家庭都有地方停车。\\n\\n51.  \\n[客户问题] 这里安全吗？\\n[销售回答] 非常安全。我们有24小时的安保人员和先进的监控系统。\\n\\n52.  \\n[客户问题] 我需要比较大的储藏空间。\\n[销售回答] 我们的设计包括了充足的储藏空间，以满足您的需求。\\n\\n53.  \\n[客户问题] 这里的电梯需要等很久吗？\\n[销售回答] 不会的，我们的电梯系统高效可靠，响应速度很快。\\n\\n54.  \\n[客户问题] 你们接受定制吗？\\n[销售回答] 当然，对于特定的户型，我们提供一定程度的定制服务。\\n\\n55.  \\n[客户问题] 我看周围没有学校。\\n[销售回答] 其实附近就有几所知名的学校，并且我们也在考虑未来在社区内建立教育设施。\\n\\n56.  \\n[客户问题] 我有老人需要照顾，有便利吗？\\n[销售回答] 我们小区有无障碍通道和专门的老年活动中心，非常适合老年人。\\n\\n57.  \\n[客户问题] 这里会不会很吵？\\n[销售回答] 我们有良好的隔音设计和规划，内部环境非常宁静。\\n\\n58.  \\n[客户问题] 这个价位对我来说有点高。\\n[销售回答] 我们有不同户型和付款方案，一定有适合您预算的。\\n\\n59.  \\n[客户问题] 物业管理怎么样？\\n[销售回答] 我们的物业管理得到业主一致好评，服务周到且高效。\\n\\n60.  \\n[客户问题] 如果我想转卖这个房子呢？\\n[销售回答] 我们的房子位于黄金地段，升值潜力很大，转卖起来不会有问题。\\n\\n61.  \\n[客户问题] 这个小区规模太大了。\\n[销售回答] 实际上，大规模的社区能提供更多的设施和更完善的服务。\\n\\n62.  \\n[客户问题] 交通如何？\\n[销售回答] 交通非常便利，不仅靠近地铁站，还有多条公交线路。\\n\\n63.  \\n[客户问题] 附近有医院吗？\\n[销售回答] 有的，距离我们小区不远就有几家大型综合医院。\\n\\n64.  \\n[客户问题] 我担心窗户太小，采光不好。\\n[销售回答] 我们所有的户型都经过精心设计，以确保最佳的采光和通风。\\n\\n65.  \\n[客户问题] 这个房子看起来太小了。\\n[销售回答] 虽然面积可能不大，但我们的设计使得每一寸空间都得到了充分利用。'),\n",
       " Document(metadata={'source': 'real_estate_sales_data.txt'}, page_content='66.  \\n[客户问题] 我看附近都是老房子。\\n[销售回答] 这个区域正在快速发展，未来的升值潜力非常大。\\n\\n67.  \\n[客户问题] 有没有健身房？\\n[销售回答] 当然，我们的小区内有设备齐全的健身房。\\n\\n68.  \\n[客户问题] 我需要考虑一下。\\n[销售回答] 当然，这是一个重要的决定。但我建议您不要等太久，毕竟好房不等人。\\n\\n69.  \\n[客户问题] 我担心楼下的商业活动会很吵。\\n[销售回答] 我们在规划时就已经考虑到这一点，商业区和居住区有一定的距离和隔音设计。\\n\\n70.  \\n[客户问题] 我担心新房会有甲醛。\\n[销售回答] 我们使用环保材料建造，并且所有的新房在交付前都会进行甲醛检测。')]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "4f755948-f125-44c8-8505-0ca0759c15ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "# OpenAI Embedding 模型\n",
    "embeddings = OpenAIEmbeddings()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8bcd5edb-c085-4a6f-8f50-0885a6d2f15b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# FAISS 向量数据库，使用 docs 的向量作为初始化存储\n",
    "db = FAISS.from_documents(docs, embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c227bec9-fbe0-46a5-8a86-7bfaf6fe5882",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构造提问 Query\n",
    "query = \"请问你们小区吵不吵？\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f3443153-da85-4f33-bd8d-18bccd3eae18",
   "metadata": {},
   "source": [
    "## 相似度搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "8fbbbf2e-0ff8-49d9-a378-09e2a0443a77",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 在 Faiss 中进行相似度搜索，找出与 query 最相似结果\n",
    "docs = db.similarity_search(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "918221f6-9687-4b04-a6b4-20527b111023",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.  \n",
      "[客户问题] 这个小区交通便利吗？\n",
      "[销售回答] 当然了，这个小区距离地铁站只有几分钟的步行距离，而且附近有多条公交线路，非常方便。\n",
      "\n",
      "2.  \n",
      "[客户问题] 我担心楼下太吵。\n",
      "[销售回答] 这个小区特别注重居住体验，我们有良好的隔音设计，并且小区内部规划了绿化区域，可以有效降低噪音。\n",
      "\n",
      "3.  \n",
      "[客户问题] 我看房价还在涨，这个投资回报怎么样？\n",
      "[销售回答] 这个区域未来有大量的商业和基础设施建设，所以从长期来看，投资回报非常有保证。\n",
      "\n",
      "4.  \n",
      "[客户问题] 有没有学校？\n",
      "[销售回答] 附近有多所优质的学校，非常适合有孩子的家庭。\n",
      "\n",
      "5.  \n",
      "[客户问题] 物业管理怎么样？\n",
      "[销售回答] 我们的物业管理得到了业主一致好评，服务非常到位。\n",
      "\n",
      "6.  \n",
      "[客户问题] 我想要南向的房子。\n",
      "[销售回答] 很好，我们确实有一些朝南的单位，它们的采光特别好。\n",
      "\n",
      "7.  \n",
      "[客户问题] 这个小区安全吗？\n",
      "[销售回答] 当然，我们24小时安保巡逻，还有先进的监控系统。\n",
      "\n",
      "8.  \n",
      "[客户问题] 预计什么时候交房？\n",
      "[销售回答] 根据目前的进度，我们预计将在明年底交房。\n",
      "\n",
      "9.  \n",
      "[客户问题] 我不想要一楼的房子。\n",
      "[销售回答] 我理解您的顾虑，我们还有多个楼层的房源可以选择。\n",
      "\n",
      "10.  \n",
      "[客户问题] 有优惠吗？\n",
      "[销售回答] 当然，如果您现在下订，我们可以给您一些优惠。\n",
      "\n",
      "11.  \n",
      "[客户问题] 你们是否提供按揭服务？\n",
      "[销售回答] 是的，我们与多家银行合作，可以帮助您快速办理按揭。\n",
      "\n",
      "12.  \n",
      "[客户问题] 税费怎么算？\n",
      "[销售回答] 我们可以提供详细的税费咨询服务，确保您清楚所有费用。\n",
      "\n",
      "13.  \n",
      "[客户问题] 附近有医院吗？\n",
      "[销售回答] 是的，附近有多家大型医院，医疗资源非常丰富。\n",
      "\n",
      "14.  \n",
      "[客户问题] 我担心小区会很拥挤。\n",
      "[销售回答] 这个小区总体规划非常合理，保证了每个单元之间有足够的空间。\n",
      "\n",
      "15.  \n",
      "[客户问题] 这个小区有游泳池和健身房吗？\n",
      "[销售回答] 当然，我们提供全方位的生活设施，包括游泳池和健身房。\n",
      "\n",
      "16.  \n",
      "[客户问题] 我需要两个停车位，怎么办？\n",
      "[销售回答] 我们的小区有充足的停车位，并且可以额外购买，确保您的停车需求得到满足。\n"
     ]
    }
   ],
   "source": [
    "# 输出 Faiss 中最相似结果\n",
    "print(docs[0].page_content)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d5a351e-bea4-43d3-9b31-567842aaa1c9",
   "metadata": {},
   "source": [
    "## 持久化存储 Faiss DB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "44f4df2f-ed07-4322-9cfc-7044fc18ed1a",
   "metadata": {},
   "outputs": [],
   "source": [
    "db.save_local(\"d:/workspace/code/sales_chatbot/real_estates_sale\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5bfe3f8a-d975-42c6-b3c0-40d253506442",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "346ca9d7-f4bf-4579-a301-7a6964492a31",
   "metadata": {},
   "source": [
    "## 加载 Faiss DB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "2dd3c237-3b9e-4439-966f-a34270d6471a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为了解决反序列化时的安全提示，设置 allow_dangerous_deserialization 为 True\n",
    "new_db = FAISS.load_local(\"real_estates_sale\", embeddings, allow_dangerous_deserialization=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "8c81f9f3-1650-4737-adec-d09380f1b8d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "docs = new_db.similarity_search(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "0524202a-199c-4284-81d7-c6febf2b584e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.  \n",
      "[客户问题] 这个小区交通便利吗？\n",
      "[销售回答] 当然了，这个小区距离地铁站只有几分钟的步行距离，而且附近有多条公交线路，非常方便。\n",
      "\n",
      "2.  \n",
      "[客户问题] 我担心楼下太吵。\n",
      "[销售回答] 这个小区特别注重居住体验，我们有良好的隔音设计，并且小区内部规划了绿化区域，可以有效降低噪音。\n",
      "\n",
      "3.  \n",
      "[客户问题] 我看房价还在涨，这个投资回报怎么样？\n",
      "[销售回答] 这个区域未来有大量的商业和基础设施建设，所以从长期来看，投资回报非常有保证。\n",
      "\n",
      "4.  \n",
      "[客户问题] 有没有学校？\n",
      "[销售回答] 附近有多所优质的学校，非常适合有孩子的家庭。\n",
      "\n",
      "5.  \n",
      "[客户问题] 物业管理怎么样？\n",
      "[销售回答] 我们的物业管理得到了业主一致好评，服务非常到位。\n",
      "\n",
      "6.  \n",
      "[客户问题] 我想要南向的房子。\n",
      "[销售回答] 很好，我们确实有一些朝南的单位，它们的采光特别好。\n",
      "\n",
      "7.  \n",
      "[客户问题] 这个小区安全吗？\n",
      "[销售回答] 当然，我们24小时安保巡逻，还有先进的监控系统。\n",
      "\n",
      "8.  \n",
      "[客户问题] 预计什么时候交房？\n",
      "[销售回答] 根据目前的进度，我们预计将在明年底交房。\n",
      "\n",
      "9.  \n",
      "[客户问题] 我不想要一楼的房子。\n",
      "[销售回答] 我理解您的顾虑，我们还有多个楼层的房源可以选择。\n",
      "\n",
      "10.  \n",
      "[客户问题] 有优惠吗？\n",
      "[销售回答] 当然，如果您现在下订，我们可以给您一些优惠。\n",
      "\n",
      "11.  \n",
      "[客户问题] 你们是否提供按揭服务？\n",
      "[销售回答] 是的，我们与多家银行合作，可以帮助您快速办理按揭。\n",
      "\n",
      "12.  \n",
      "[客户问题] 税费怎么算？\n",
      "[销售回答] 我们可以提供详细的税费咨询服务，确保您清楚所有费用。\n",
      "\n",
      "13.  \n",
      "[客户问题] 附近有医院吗？\n",
      "[销售回答] 是的，附近有多家大型医院，医疗资源非常丰富。\n",
      "\n",
      "14.  \n",
      "[客户问题] 我担心小区会很拥挤。\n",
      "[销售回答] 这个小区总体规划非常合理，保证了每个单元之间有足够的空间。\n",
      "\n",
      "15.  \n",
      "[客户问题] 这个小区有游泳池和健身房吗？\n",
      "[销售回答] 当然，我们提供全方位的生活设施，包括游泳池和健身房。\n",
      "\n",
      "16.  \n",
      "[客户问题] 我需要两个停车位，怎么办？\n",
      "[销售回答] 我们的小区有充足的停车位，并且可以额外购买，确保您的停车需求得到满足。\n"
     ]
    }
   ],
   "source": [
    "print(docs[0].page_content)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "langchain",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
